package com.student.management.service;

import com.student.management.entity.Student;

import java.util.List;

/**
 * 学生业务逻辑接口
 */
public interface StudentService {
    /**
     * 添加学生
     * @param student 学生对象
     * @return 学生对象（包含生成的ID）
     */
    Student addStudent(Student student);

    /**
     * 删除学生
     * @param id 学生ID
     */
    void deleteStudent(Long id);

    /**
     * 更新学生信息
     * @param id 学生ID
     * @param student 学生对象
     * @return 更新后的学生对象
     */
    Student updateStudent(Long id, Student student);

    /**
     * 根据ID查询学生
     * @param id 学生ID
     * @return 学生对象
     */
    Student getStudentById(Long id);

    /**
     * 根据学号查询学生
     * @param studentId 学号
     * @return 学生对象
     */
    Student getStudentByStudentId(String studentId);

    /**
     * 查询所有学生
     * @return 学生列表
     */
    List<Student> getAllStudents();

    /**
     * 根据姓名查询学生
     * @param name 姓名
     * @return 学生列表
     */
    List<Student> searchStudentsByName(String name);

    /**
     * 根据班级查询学生
     * @param className 班级
     * @return 学生列表
     */
    List<Student> getStudentsByClass(String className);

    /**
     * 根据专业查询学生
     * @param major 专业
     * @return 学生列表
     */
    List<Student> getStudentsByMajor(String major);
}
